package com.msmall.community.common.service;

import java.io.File;
import java.util.List;

import com.msmall.base.service.BaseManager;
import com.msmall.community.common.model.Commend;

public interface CommendManager extends BaseManager<Commend, Long>{

	/**
	 * 获得2天时间内所有的有效的推荐，
	 * @return
	 */
	public List<Commend> getAllAvailable2D();
	
	/**
	 *问题首页的推荐
	 */
	public List<Commend> getQuestionImages();
	/**
	 *问题首页热点问题
	 */
	public List<Commend> getQuestionHot();
	/**
	 *问题 妈妈关系的问题
	 */
	public List<Commend> getQuestionMother();
	/**
	 *问题 宝宝关心的问题
	 */
	public List<Commend> getQuestionBaby();
	
	/**
	 * 刷新网站首页内容到缓存
	 */
	public void refreshSiteIndex();
	/**
	 * 刷新BBS的所有推荐到缓存
	 */
	public void refreshBBS();
	/**
	 * 刷新问答的所有推荐到缓存
	 */
	public void refreshQuestion();
	/**
	 * 刷新知识的所有推荐到缓存
	 */
	public void refreshKlg();
	
	/**
	 * 创建一个，还未审核
	 * @param commend
	 * @param userid
	 */
	public void createCommend(Commend commend, Long userid);
	
	/**
	 * 非后台管理用户删除一个推荐，例如版主
	 * @param type
	 * @param userid
	 */
	public void removeCommend(Short type, Long eid, Long userid);
	/**
	 * 后台管理用户删除一个推荐
	 */
	public void removeCommend(Long commendid, Long userid);
	/**
	 * 后台管理用户删除一个推荐
	 */
	public void removeCommends(String commendids, Long userid);
	
	/**
	 * 后台管理员管理推荐，包括审核，显示位置
	 * @param commend
	 * @param userid
	 */
	public void auditCommend(File image,String filename, Commend commend, Long userid, String uat);
	
	/**
	 * @param type ContantDB.COMMEND_TYPE_BBS_TOPIC  COMMEND_TYPE_QUESTION ..
	 * @param entityId Topic/Blog/Question 对应ID
	 */
	public Commend getByTypeAndId(Short type, Long eid) throws Exception;
	
}
